1. Field of the Invention
Embodiments of the present invention generally relate to a software application virtualization systems and, more particularly, to a method and apparatus for maintaining data consistency in a virtualized application during software update installation.
2. Description of the Related Art
In a typical computing environment, an organization may employ any number of technologies to process, store, produce and secure mission critical data. For example, the organization may employ one or more data protection system to backup and recover the mission critical data after a disaster or data corruption. As another example, the organization may employ one or more security systems to detect and/or mitigate network-based threats, such as viruses, intrusions, SPAM and/or the like. Furthermore, the organization may employ one or more virtualization techniques to create one or more abstract computer resources (e.g., virtual machines, virtual applications, virtual desktops, virtual hardware devices and/or the like) from physical computer resources.
Virtualized applications are isolated from the local resources on the physical machine. Conventionally, a virtualized application is installed as a layer (e.g., one or more portions of memory that are isolated from the local resources on the physical machine). Any modifications made during the installation are captured in a read-only portion or sub-layer of the virtualized application (layer). The read-only sub-layer preserves a state of the original installation. Any subsequent modifications made by the virtualized application are stored in a read-write sub-layer. Accordingly, the read-write sub-layer overrides the read-only sub-layer. Regardless, if the read-write sub-layer were to be deleted and recreated as an empty sub-layer, the virtualized application would revert back to the read-only sub-layer and operate as it did when initially installed.
Data within the read-only sub-layer and the read-write sub-layer becomes inconsistent in certain situations. For example, the virtualized application may be updated through the virtualization layer provided by the virtualization software (e.g., an update mechanism of a virtualization interface). If a recent software update is installed through the virtualization software, the modifications (e.g., software update data) are reflected in the read-only sub-layer. In addition, the virtualized application (e.g., MOZILLA FireFox 2.0) may have an internal update mechanism (e.g., a menu option to update files). If a software update is installed through such an internal update mechanism, then the modifications are captured in the read-write sub-layer. If such a software update happens to be an older version of the application, then these updates would override the more recent updates in the read-only sub-layer. Consequently, more recent files within the read-only sub-layer are overridden by outdated, older versions of the same files within the read-write sub-layer. As a result, the more recent software update is essentially ineffective. This consistency causes problems during the operation of the virtualized application especially if the more recent software update includes one or more files that were not included in the older software update.
Therefore, there is a need in the art for a method and apparatus for maintaining data consistency in a virtualized application during software update installation.